
/**
 * 面向对象的三大特性：封装 继承 多态
 * 
 * Dart中的类的继承
 * 
 * 1.子类使用extends关键词来继承父类
 * 2.子类会继承父类里面可见的属性和方法 但是不会继承构造函数
 * 3.子类能复写父类的方法 getter和setter
 * 
 * 
 */

class Person{

String name="张三";

int age=23;
Person(this.name,this.age);

void getInfo(){

print("${this.name}----${this.age}");

}

work(){

print("${this.name}在工作中...");

}
}

class Web extends Person{

  //实例化子类的时候给父类传参
  Web(super.name, super.age);

  //可以扩展属性和方法

  run(){

   print("${this.name}----${this.age}");

   super.work();//子类调用父类的方法，直接调用

  }

  //覆写父类的方法
  @override   //可以写可以不写，建议在覆写父类方法的时候加上  @override 
  void getInfo(){

   print("姓名：${this.name}----年龄：${this.age}");

  }

  @override  
  work(){

   print("${this.name}的工作是写代码...");

    } 

}



void main(){

Web web=new Web("张三",20);

web.getInfo();//姓名：张三----年龄：20

web.work();//张三的工作是写代码...

}